define("@wsb/guac-widget-shared/c/ScrollWidgetConstants-d82c8c71.js",["exports","~/c/OlsConfigStore","~/lib/common/ols-core/utils/ApiUtils","~/c/index"],(function(e,t,r,n){"use strict";var o=(global.keyMirror||guac.keymirror)({PRODUCT_LISTING:null,PRODUCT_DETAIL:null,CART:null,SEARCH_RESULTS:null}),a=(global.keyMirror||guac.keymirror)({SET_VIEW:null}),i=(global.keyMirror||guac.keymirror)({LOAD_PRODUCTS:null,PRODUCTS_WERE_LOADED:null,SET_PRODUCT_SLUG:null,SET_PRODUCT_DETAIL_DATA:null,LOAD_PRODUCT:null,PRODUCT_WAS_LOADED:null,SET_PRODUCT_CONFIG:null,ERROR_LOADING_PRODUCTS_DATA:null,ERROR_LOADING_PRODUCT_DATA:null,LOAD_SIMILAR_PRODUCTS:null,LOAD_SIMILAR_PRODUCTS_LOADED:null,ERROR_LOADING_SIMILAR_PRODUCTS_DATA:null});class s extends t.E{constructor(){super(...arguments),this.state={fetching:!1,fetched:!1,error:null,errorRetryable:!1,count:0,totalCount:0,currentPage:0,perPage:12,pages:0,searchKeywords:null,sortOption:null,defaultPerPage:12,defaultSortOption:null,products:[]},this.register()}setState(e){(global._||guac.lodash).assign(this.state,e),this.emit("change")}getState(){return this.state}register(){this.dispatchToken=t.A.register((e=>{const{action:t}=e,{data:r}=t;switch(t.type){case i.LOAD_PRODUCTS:this.setState({fetching:!0,error:null,errorRetryable:!1,searchKeywords:r.searchKeywords,sortOption:r.sortOption});break;case i.PRODUCTS_WERE_LOADED:this.setState({fetching:!1,fetched:!0,count:r.count,totalCount:r.total_count,currentPage:r.current_page,perPage:r.per_page,pages:r.pages,products:r.products});break;case i.ERROR_LOADING_PRODUCTS_DATA:this.setState({fetching:!1,fetched:!0,error:t.error});break;case i.SET_PRODUCT_CONFIG:this.setState({defaultPerPage:r.defaultPerPage,perPage:r.defaultPerPage,defaultSortOption:r.defaultSortOption})}}))}}var c=new s,u=(global.keyMirror||guac.keymirror)({CART_CREATE:null,CART_LOAD:null,CART_WAS_LOADED:null,ERROR_CART_LOAD:null,CART_ITEM_ADD:null,CART_ITEM_WAS_ADDED:null,ERROR_CART_ITEM_ADD:null,CART_ITEM_MODIFY:null,CART_ITEM_WAS_MODIFIED:null,ERROR_CART_ITEM_MODIFY:null,CART_ITEM_REMOVE:null,CART_ITEM_WAS_REMOVED:null,ERROR_CART_ITEM_REMOVE:null,NO_CART_WAS_LOADED:null,APPLY_COUPON:null,COUPON_WAS_APPLIED:null,COUPON_WAS_INVALID:null}),l=(global.keyMirror||guac.keymirror)({SESSION_STARTED:null,SESSION_CANCELED:null,SESSION_FAILED:null,STRIPE_WAS_LOADED:null,POYNT_WAS_LOADED:null,AVAILABILITY_WAS_CHECKED:null,APPLE_PAY_IS_AVAILABLE:null,PAYMENT_REQUEST_IS_AVAILABLE:null,PAYMENT_REQUEST_BUTTON_CLICKED:null});class d extends t.E{constructor(){super(...arguments),this.state={fetching:!1,error:null,errorRetryable:!1,slug:null,product:null,selectedVariantSku:null,paymentRequestButtonClicked:!1,similarProducts:[]},this.register()}setState(e){(global._||guac.lodash).assign(this.state,e),this.emit("change")}getState(){return this.state}register(){this.dispatchToken=t.A.register((e=>{const{action:t}=e;switch(t.type){case i.SET_PRODUCT_DETAIL_DATA:this.setState({slug:t.data.slug,selectedVariantSku:t.data.selectedVariantSku});break;case i.SET_PRODUCT_SLUG:this.setState({slug:t.data});break;case i.LOAD_PRODUCT:this.setState({fetching:!0,error:null,errorRetryable:!1,similarProducts:[]});break;case i.PRODUCT_WAS_LOADED:this.setState({fetching:!1,product:t.data});break;case i.ERROR_LOADING_PRODUCT_DATA:this.setState({fetching:!1,error:t.error});break;case i.LOAD_SIMILAR_PRODUCTS:this.setState({error:null,errorRetryable:!1});break;case i.LOAD_SIMILAR_PRODUCTS_LOADED:this.setState({similarProducts:t.data.products});break;case i.ERROR_LOADING_SIMILAR_PRODUCTS_DATA:this.setState({error:t.error});break;case u.ERROR_CART_ITEM_ADD:this.setState({fetching:!1,error:t.error});break;case l.SESSION_STARTED:this.setState({error:null});break;case l.SESSION_FAILED:this.setState({error:t.error});break;case l.PAYMENT_REQUEST_BUTTON_CLICKED:this.setState({paymentRequestButtonClicked:!0})}}))}}var _=new d;function O(e){return"undefined"!=typeof document&&e&&decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(e).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null}function p(e,t,r){return"undefined"==typeof document?null:!!g(e)&&(document.cookie=encodeURIComponent(e)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT"+(r?"; domain="+r:"")+(t?"; path="+t:""),!0)}function g(e){return"undefined"==typeof document?null:!!e&&new RegExp("(?:^|;\\s*)"+encodeURIComponent(e).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(document.cookie)}const R="OLS_CART_STORE",A={getHostname:()=>window.location.hostname};function T(){const e=t.O.getWebsiteId();return`${R}_${e}`}function f(){const e=R,t=T();let r=null,n=null;if(r=g(t)?O(t)||null:g(e)&&O(e)||null,r)try{n=JSON.parse(r)}catch(e){}return n}function S(){const e=T(),t=f();let r=null;t&&(r=t.domain||null),p(e,"/",r)}var h=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))},E="%[a-f0-9]{2}",D=new RegExp(E,"gi"),C=new RegExp("("+E+")+","gi");function I(e,t){try{return decodeURIComponent(e.join(""))}catch(e){}if(1===e.length)return e;t=t||1;var r=e.slice(0,t),n=e.slice(t);return Array.prototype.concat.call([],I(r),I(n))}function P(e){try{return decodeURIComponent(e)}catch(n){for(var t=e.match(D),r=1;r0&&void 0!==arguments[0]&&arguments[0];const r=t.O.getState(),n=r.fetchingConfig,o=r.configWasLoaded,a=r.error;n||a||!e&&o||(t.d({type:t.b.LOAD_CONFIG}),x().then((function(e){return function(e){t.a({type:t.b.CONFIG_WAS_LOADED,data:e})}(e)})).catch((function(e){return function(e){t.a({type:t.b.ERROR_LOADING_CONFIG,error:e})}(e.error||e,e.response),M()})))}function M(){const{provisionInProgress:e,provisionTried:n,renderMode:o}=t.O.getState();var a;-1===[N.EDIT,N.PREVIEW].indexOf(o)||e||n||(t.d({type:t.b.START_PROVISION_ACCOUNT}),(a=t.O.getState().websiteId,r.X.postRequest(`${k()}/api/global/accounts/${a}`,{},null,!0)).then((function(){return t.a({type:t.b.ACCOUNT_PROVISIONED}),w(!0)})).catch((function(e){return r=e.error||e,e.response,void t.a({type:t.b.ERROR_ACCOUNT_PROVISIONED,error:r});var r})))}var G={setConfig:function(e){const{configWasSet:r,i18n:n,websiteId:o}=t.O.getState();let a=e&&e.staticContent;a||(a=e&&e.i18n);const i=!o&&e.websiteId;(global._||guac.lodash).isObject(a)&&Object.keys(a).length&&!(global._||guac.lodash).isEqual((global._||guac.lodash).merge({...n},a),n)&&t.d({type:t.b.UPDATE_I18N,data:e}),r&&!i||t.d({type:t.b.SET_CONFIG,data:e})},clearError:function(){t.d({type:t.b.CLEAR_ERROR})},loadConfig:w,loadAccount:function(){const{fetchingAccount:e}=t.O.getState();var n;e||(t.d({type:t.b.LOAD_ACCOUNT_INFO}),(n=t.O.getState().websiteId,r.X.getRequest(`${k()}/api/global/accounts/${n}`)).then((function(e){return function(e){t.a({type:t.b.ACCOUNT_INFO_WAS_LOADED,data:e})}(e)})).catch((function(e){return r=e.error,void t.a({type:t.b.ERROR_LOADING_ACCOUNT_INFO,error:r});var r})))},provisionAccount:M,toggleProductSorting:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];t.d({type:t.b.TOGGLE_PRODUCT_SORTING,data:e})}},W=(global.keyMirror||guac.keymirror)({LOAD_CATEGORIES:null,CATEGORIES_WERE_LOADED:null,ERROR_LOADING_CATEGORIES_DATA:null,SELECT_CATEGORY:null});const $=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];for(const r of t){const{permalink:t,name:n}=r,o={permalink:t,name:n};if((null==r?void 0:r.permalink)===e)return[o];const a=$(e,null==r?void 0:r.taxons);if(null!=a&&a.length)return[o,...a]}return[]};class F extends t.E{constructor(){super(...arguments),this.buildTaxonMap=this.buildTaxonMap.bind(this),this.state={fetching:!1,fetched:!1,error:null,errorRetryable:!1,count:0,totalCount:0,currentPage:0,perPage:1e4,pages:0,taxons:[],fetchTaxons:!1,taxonMap:{}},this.register()}setState(e){(global._||guac.lodash).assign(this.state,e),this.emit("change")}getState(){return this.state}getTaxonName(e){const{taxonMap:t}=this.state;return t[e].name}getTaxonInfo(e){const{taxonMap:t}=this.state,{name:r,description:n,image:o}=t[e]||{};return{name:r,description:n,image:o}}buildTaxonMap(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.forEach((e=>{const r=e.cover_image&&e.cover_image.length?e.cover_image[0].large_url:"",n={name:e.name};e.description&&(n.description=e.description),r&&(n.image=r),t[e.permalink]=n,e.taxons&&e.taxons.length>0&&this.buildTaxonMap(e.taxons,t)})),t}getTaxonListByPermalink(e){var t;return $(e,null===(t=this.state)||void 0===t?void 0:t.taxons)}register(){this.dispatchToken=t.A.register((e=>{const{action:r}=e,{data:n}=r;switch(r.type){case W.LOAD_CATEGORIES:this.setState({fetching:!0,error:null,errorRetryable:!1});break;case W.CATEGORIES_WERE_LOADED:this.setState({fetching:!1,fetched:!0,count:n.count,totalCount:n.total_count,currentPage:n.current_page,perPage:n.per_page,pages:n.pages,taxons:n.taxons,fetchTaxons:!1,taxonMap:this.buildTaxonMap(n.taxons)});break;case W.ERROR_LOADING_CATEGORIES_DATA:this.setState({fetching:!1,fetched:!0,error:r.error});break;case i.LOAD_PRODUCTS:this.setState({fetchTaxons:n.fetchTaxons});break;case t.b.CONFIG_WAS_LOADED:this.setState({fetchTaxons:!0})}}))}}var V=new F;class q extends t.E{constructor(){super(...arguments),this.state={currentView:o.PRODUCT_LISTING,taxonsWereLoaded:!1,selectedTaxonPermalink:null,searchKeywords:null,routePath:null,sortOption:null},this.register()}setState(e){(global._||guac.lodash).assign(this.state,e),this.emit("change")}getState(){return this.state}register(){this.dispatchToken=t.A.register((e=>{const{action:t}=e,{data:r}=t;switch(t.type){case a.SET_VIEW:this.setState({currentView:r});break;case i.SET_PRODUCT_DETAIL_DATA:case i.SET_PRODUCT_SLUG:this.setState({currentView:o.PRODUCT_DETAIL});break;case i.LOAD_PRODUCTS:this.setState({currentView:r.searchKeywords?o.SEARCH_RESULTS:o.PRODUCT_LISTING,selectedTaxonPermalink:r.selectedTaxonPermalink,searchKeywords:r.searchKeywords,sortOption:r.sortOption,routePath:r.routePath});break;case W.CATEGORIES_WERE_LOADED:setTimeout((()=>{this.setState({taxonsWereLoaded:!0})}),0)}}))}}var j=new q;var K={loadProducts:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{page:n=1,taxonPermalink:o=null,searchKeywords:a,sortOption:s,routePath:u}=e,{fetching:l,perPage:d,defaultSortOption:_}=c.getState(),{taxonsWereLoaded:O}=j.getState(),{renderMode:p}=t.O.getState(),{fetchTaxons:g}=V.getState();if(l)return;const R={selectedTaxonPermalink:o,searchKeywords:a,fetchTaxons:g,sortOption:s,routePath:u};"PUBLISH"===p&&O||(R.fetchTaxons=!0),t.d({type:i.LOAD_PRODUCTS,data:R});const A={page:n,per_page:d};o&&(A.taxon_permalink=o),a&&(A["q[keywords]"]=a,A["q[name_or_description_text_cont]"]=a),A[`q[${s||_||"descend_by_popularity"}]`]=!0,r.loadProducts(A).then((function(e){return function(e){const r=e.products[0];r&&r.currency!==t.O.getCurrentCurrency()&&G.loadConfig(!0);t.a({type:i.PRODUCTS_WERE_LOADED,data:e})}(e)})).then((()=>{window.dispatchEvent(new Event("finishLoadingProducts"))})).catch((function(e){return r=e.error,void t.a({type:i.ERROR_LOADING_PRODUCTS_DATA,error:r});var r}))},setProductSlug:function(e){t.d({type:i.SET_PRODUCT_SLUG,data:e})},setProductDetailData:function(e){let{slug:r,selectedVariantSku:n}=e;t.d({type:i.SET_PRODUCT_DETAIL_DATA,data:{slug:r,selectedVariantSku:n}})},setProductConfig:function(e){const r={defaultPerPage:e.defaultPerPage,defaultSortOption:e.defaultSortOption};t.d({type:i.SET_PRODUCT_CONFIG,data:r})},loadProduct:function(){const{slug:e,fetching:n}=_.getState();e&&!n&&(t.d({type:i.LOAD_PRODUCT}),r.loadProduct(e).then((function(e){return function(e){e.currency!==t.O.getCurrentCurrency()&&G.loadConfig(!0);t.a({type:i.PRODUCT_WAS_LOADED,data:e})}(e)})).catch((function(e){return r=e.error,void t.a({type:i.ERROR_LOADING_PRODUCT_DATA,error:r});var r})))},loadSimilarProducts:function(e){const n=e||_.getState().slug;n&&(t.a({type:i.LOAD_SIMILAR_PRODUCTS}),r.loadSimilarProducts(n).then((function(e){return function(e){t.a({type:i.LOAD_SIMILAR_PRODUCTS_LOADED,data:e})}(e)})).catch((function(e){return r=e.error,void t.a({type:i.ERROR_LOADING_SIMILAR_PRODUCTS_DATA,error:r});var r})))}};function B(){return t.O.getApiBaseUrl()}function X(e){return r.X.postRequest(`${B()}/api/orders?app=vnext`,e)}function Y(e){return{"X-Spree-Order-Token":e.token}}function H(e,t){let n=`${B()}/api/orders/${e.number}?app=vnext`;return t&&(n+="&destroyExpiredProducts=true"),r.X.getRequest(n,void 0,void 0,Y(e))}function J(e,n,o,a){const i=t.O.getState().requestTimeout.addToCart;return r.X.postRequest(`${B()}/api/orders/${e.number}/line_items`,{line_item:{variant_id:n,quantity:parseInt(o,10),options:a}},i,!1,Y(e))}function Q(e,t){const n={order:{line_items_attributes:t}};return r.X.patchRequest(`${B()}/api/orders/${e.number}/line_items/update_multiple`,n,void 0,Y(e))}function z(e,t){return r.X.deleteRequest(`${B()}/api/orders/${e.number}/line_items/${t}`,void 0,void 0,Y(e))}function Z(e,t){const n={coupon_code:t};return r.X.putRequest(`${B()}/api/orders/${e.number}/apply_coupon_code`,n,void 0,Y(e))}var ee=Object.freeze({__proto__:null,getBaseUrl:B,createCart:X,getHeaders:Y,loadCart:H,addToCart:J,addToOrder:function(e,n,o,a){const i=t.O.getState().requestTimeout.addToCart;return r.X.postRequest(`${B()}/api/orders/${e.number}/line_items?return_order=1&app=vnext`,{line_item:{variant_id:n,quantity:parseInt(o,10),options:a}},i,!1,Y(e))},modifyCartLineItems:Q,removeCartLineItem:z,applyCoupon:Z}),te=(global.keyMirror||guac.keymirror)({SCROLL_WIDGET:null});e.A=l,e.C=u,e.O=G,e.P=K,e.S=a,e.a=o,e.b=J,e.c=X,e.d=Z,e.e=S,e.f=te,e.g=function(){return(f()||{}).order||null},e.h=V,e.i=W,e.j=j,e.k=ee,e.l=H,e.m=Q,e.n=Y,e.o=i,e.p=_,e.q=v,e.r=z,e.s=function(e){const t=A.getHostname().replace(/^www\./i,""),r=f(),n=T();r&&r.domain!==t&&p(n,"/",r.domain||null),function(e){if("undefined"==typeof document)return null;const{sKey:t,sValue:r,vEnd:n,sPath:o,sDomain:a,bSecure:i}=e;if(!t||/^(?:expires|max\-age|path|domain|secure)$/i.test(t))return!1;var s="";if(n)switch(n.constructor){case Number:s=n===1/0?"; expires=Fri, 31 Dec 9999 23:59:59 GMT":"; max-age="+n;break;case String:s="; expires="+n;break;case Date:s="; expires="+n.toUTCString()}document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(r)+s+(a?"; domain="+a:"")+(o?"; path="+o:"")+(i?"; secure":"")}({sKey:n,sValue:JSON.stringify({order:{number:e.number,token:e.token},domain:t}),vEnd:null,sPath:"/",sDomain:t})},e.t=c})),"undefined"!=typeof window&&(window.global=window); //# sourceMappingURL=ScrollWidgetConstants-d82c8c71.js.map